#!/usr/bin/env python
class Shape:
    def __init__(self):
        raise NotImplementedError('传入初始化参数')
    
    def areaTriangle(self):
        Tarea=self.bottom*self.high/2
        return Tarea
    
    def areaRectangle(self):
        Rarea=self.long*self.wide
        return Rarea
    
    def AreaCircular(self):
        Carea=3.14*self.r**2
        return Carea
    
    
class Triangle(Shape):
    def __init__(self,bottom,high):
        self.bottom=bottom
        self.high=high
        
class Rectangle(Shape):
    def __init__(self,long,wide):
        self.long=long
        self.wide=wide
        
class Cricular(Shape):
    def __init__(self,r):
        self.r=r

t=Triangle(4,2)
t.areaTriangle()

m=Rectangle(4,6)
m.areaRectangle()

n=Cricular(5)


#序列化
import json

src=n.__dict__
filename='cricular.json'
with open(filename,'wt') as f:
	json.dump(src,f)


# 首先，类里面的方法，也是用小写字母开头，包括变量，基本都是小写字母开头，其次，不同图形的求面积方法，为什么不放到每个图形类里面呢，为什么放到基类里面呢，如果需要再定义一个梯形，那你怎么改呢？？

#优化：序列化
import json
class DumpjsonMixin:
	def dumpjson(self):
		return json.dumps(self.__dict__)

class DumpjsonCricularMxin(DumpjsonMixin,Cricular):
	pass
	
h=DumpjsonCricularMxin(5)
h.dumpjson()





